Use QDomDocument content method returning ParseResult
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Thu, 28 Nov 2024 10:04:28 +0000 (18:04 +0800)
committerMatthieu Gallien <matthieu.gallien@nextcloud.com>
Fri, 20 Dec 2024 15:26:57 +0000 (16:26 +0100)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Use ParseResult returning QDomDocument setContent

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
f parseresult

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/updater/updateinfo.cpp
src/libsync/networkjobs.cpp

index 55512374a1f5706fea41054e4818f1e55502db39..2bfb720fb63a54ad3aa7826c94ce16de71d1ffac 100644 (file)
@@ -84,13 +84,11 @@ UpdateInfo UpdateInfo::parseElement(const QDomElement &element, bool *ok)
 
 UpdateInfo UpdateInfo::parseString(const QString &xml, bool *ok)
 {
-    QString errorMsg;
-    int errorLine = 0, errorCol = 0;
     QDomDocument doc;
-    if (!doc.setContent(xml, false, &errorMsg, &errorLine, &errorCol)) {
-        qCWarning(lcUpdater).noquote().nospace() << errorMsg << " at " << errorLine << "," << errorCol
-                                << "\n" <<  xml.split("\n").value(errorLine-1) << "\n"
-                                << QString(" ").repeated(errorCol - 1) << "^\n"
+    if (const auto result = doc.setContent(xml); !result) {
+        qCWarning(lcUpdater).noquote().nospace() << result.errorMessage << " at " << result.errorLine << "," << result.errorColumn
+                                << "\n" <<  xml.split("\n").value(result.errorLine - 1) << "\n"
+                                << QString(" ").repeated(result.errorColumn - 1) << "^\n"
                                 << "->" << xml << "<-";
         if (ok)
             *ok = false;
index 78356f8c92f3d47b94fba6463ac4db9ec5d6836d..1cde1a2c15a00de30f2f2e637035de553c8cb3f9 100644 (file)
@@ -663,12 +663,9 @@ bool PropfindJob::finished()
     if (http_result_code == 207) {
         // Parse DAV response
         auto domDocument = QDomDocument();
-        auto errorMsg = QString();
-        auto errorLine = -1;
-        auto errorColumn = -1;
 
-        if (!domDocument.setContent(reply(), true, &errorMsg, &errorLine, &errorColumn)) {
-            qCWarning(lcPropfindJob) << "XML parser error: " << errorMsg << errorLine << errorColumn;
+        if (const auto res = domDocument.setContent(reply(), QDomDocument::ParseOption::UseNamespaceProcessing); !res) {
+            qCWarning(lcPropfindJob) << "XML parser error: " << res.errorMessage << res.errorLine << res.errorColumn;
             emit finishedWithError(reply());
 
         } else {